/*
 * menu.cpp
 *
 *  Created on: 20 de Out de 2011
 *      Author: pedrocouto
 */

#include "menu.h"

Menu::Menu(int min, int max) {
	Menu::min = min;
	Menu::max = max;
}

void Menu::Opcoes_Login() {
	cout << "1 - Login\n2 - Sair\n";
}

int Menu::EscolhaMenu()
{
	string escolha;
	cin >> escolha;
	if (escolha == "VOLTAR")
		return -2;

	while (((StringParaInt(escolha) >= max) || (StringParaInt(escolha) < min))
			&& StringENumero(escolha)) {
		cout << "Opcao incorrecta. ";

		if (min != (max - 1))
			cout << "Por favor escolha uma opcao de " << min << " ate " << max
					- 1 << ". \n Resposta: ";
		else
			cout << "So pode escolher " << min << "." << ". \n Resposta: ";

		cin >> escolha;
		if (escolha == "VOLTAR")
			return -2;
	}

	if (StringENumero(escolha))
		return StringParaInt(escolha);

	cout << "Por favor escolha apenas numeros para representar as escolhas.";
			cout << "\n Resposta: ";
	return EscolhaMenu();
}

int Menu::StringParaInt(string str)
{
	int sum = 0;
	for (unsigned int i = 0; i < str.size(); i++) {
		sum = ((sum * 10) + (str[i] - '0'));
	}
	return sum;
}

bool Menu::StringENumero(string palavra) {
	bool result = true;
	for (size_t i = 0; i < palavra.size(); i++) {
		int current = palavra[i];
		bool numero = ((current < 48) || (current > 57));
		result = result && !numero;
	}
	return result;
}

void Menu::Mostra_Gestores(Grupo_Gestores &Gest) {
	cout << "Escolha um Gestor:";
	cout << "\n "; cout << "1"; cout << ") "<< Gest.Gestores[0]->getUsername();
	for (int i = 1; i < Gest.numGestores(); i++)
	{
		char num = i+49;
		cout <<  "\n "; cout <<num ; cout << ") "<< Gest.Gestores[i]->getUsername();
	}
	cout << "\n";
}

void Menu::Opcoes_Menu_Gestor_0(Gestor gestor) {
	cout << "\nAREA PRIVADA DE GESTOR\n - " << gestor.getID() << gestor.getPrimeiroNome() << " " << gestor.getUltimoNome() << "\n\n";
	cout << "Por favor escolha uma opcao: " << endl;
	cout << "\n ";
	cout<<'1'; cout <<") Artistas \n ";
	cout<<'2'; cout <<") Espetaculos  \n ";
	cout<<'3'; cout <<") Sair "
				"\n\nO que deseja fazer?" << endl;
}

void Menu::Opcoes_Menu_Gestor_Artistas(Gestor gestor) {
	cout << "\nMENU ARTISTAS\n" << "User: " << gestor.getPrimeiroNome() << " " << gestor.getUltimoNome() << "\n\n";
	cout << "Por favor, escolha uma opcao: " << endl;
	cout << "1) Ver Artistas \n";
	cout << "2) Adicionar Artista \n";
	cout << "3) Remover Artista \n";
	cout << "4) Modificar Artista\n";
	cout << "5) Ver Artista Completo \n";
	cout << "6) Voltar"
			"\n\nO que deseja fazer?" << endl;
}

void Menu::Opcoes_Menu_Gestor_Espetaculos(Gestor gestor) {
	cout << "\nMENU ESPETACULOS\n" << "User: " << gestor.getPrimeiroNome() << " " << gestor.getUltimoNome() << "\n\n";
	cout << "Por favor, escolha uma opcao: " << endl;
	cout << "1) Ver Calendario \n";
	cout << "2) Adicionar Espetaculo \n";
	cout << "3) Adiciona Artista a Espetaculo \n";
	cout << "4) Remover Espetaculo \n";
	cout << "5) Remover Artista de Espetaculo \n";
	cout << "6) Modificar Espetaculo \n";
	cout << "7) Voltar"
			"\n\nO que deseja fazer?" << endl;
}
